package com.persondemo.videoappliction.net;

import com.persondemo.videoappliction.bean.DelteShopBean;
import com.persondemo.videoappliction.bean.DetilsBean;
import com.persondemo.videoappliction.bean.DianPingBean;
import com.persondemo.videoappliction.bean.DianPingChoiceBean;
import com.persondemo.videoappliction.bean.DianPingDetilsBean;
import com.persondemo.videoappliction.bean.DuanziBean;
import com.persondemo.videoappliction.bean.GooleAdBean;
import com.persondemo.videoappliction.bean.HFBean;
import com.persondemo.videoappliction.bean.HotSearchBean;
import com.persondemo.videoappliction.bean.MainBean;
import com.persondemo.videoappliction.bean.MeCollectBean;
import com.persondemo.videoappliction.bean.MeShopBean;
import com.persondemo.videoappliction.bean.PersonSettingBean;
import com.persondemo.videoappliction.bean.PingLunBean;
import com.persondemo.videoappliction.bean.PuShopBean;
import com.persondemo.videoappliction.bean.PutBean;
import com.persondemo.videoappliction.bean.PutShopTypeBean;
import com.persondemo.videoappliction.bean.SearchBean;
import com.persondemo.videoappliction.bean.ShengtieBean;
import com.persondemo.videoappliction.bean.ShopDetilsBean;
import com.persondemo.videoappliction.bean.SplashBean;
import com.persondemo.videoappliction.bean.TvMovieBean;
import com.persondemo.videoappliction.bean.UpPingCeBean;
import com.persondemo.videoappliction.bean.UpdataBean;
import com.persondemo.videoappliction.bean.UpimgBean;
import com.persondemo.videoappliction.bean.UseInfoBean;
import com.persondemo.videoappliction.bean.VideoBean;
import com.persondemo.videoappliction.bean.VipBean;
import com.persondemo.videoappliction.bean.VipSeachBean;
import com.persondemo.videoappliction.bean.WaiVideBean;
import com.persondemo.videoappliction.bean.ZanCaiBean;
import com.persondemo.videoappliction.bean.ZiXunBean;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

/**
 * Created by Administrator on 2018/3/19.
 */

public interface VideoApiService {
    //获取首页数据
    @GET("api/api/indexlist")
    Observable<MainBean> getMaindata(@Query("device") String imei);

    //视频详情
    @GET("api/api/indexnews")
    Observable<VideoBean> getdetilsdata(@Query("id") int id);

    //搜索详情
    @GET("api/api/indexsear")
    Observable<SearchBean> getsearchdata(@Query("key") String title);

    @GET("api/api/indexfenlei")
    /*
    type	电影分类id 1=电影 2=电视 4=动漫	是	[string]
types	电影类型id	是	[string]
city	地区名字	是	[string]
ages	年代	是	[string]
page	页数
     */
    Observable<TvMovieBean> getdatas(@Query("type") String type, @Query("types") String types,
                                     @Query("city") String city, @Query("ages") String ages, @Query("page") String page);

    //   key 外网数url
    @POST("api/api/indexdyadd")
    Observable<WaiVideBean> getwaidata(@Query("key") String key);

    //启动页
    @GET("api/api/appqd")
    Observable<SplashBean> getlogoldata();

    @GET("api/api/vipinfo")
    Observable<VipBean> getvip(@Query("device") String imei);

    //更新apk
    @GET("api/api/apkbanss")
    Observable<UpdataBean> updata();

    //vip搜索
    @GET("api/api/vipsears")
    Observable<VipSeachBean> getvipsearch(@Query("key") String key, @Query("page") int page);

    //热门标签
    @GET("api/api/vipsears")
    Observable<HotSearchBean> fragmentsearch(@Query("key") String key, @Query("page") int page);

    /*
    分类 1=全部段子 2=妹子
    页数默认不填
     */
    @GET("api/duanzi/appdlist")
    Observable<DuanziBean> getduanzidata(@Query("type") String type, @Query("page") String page, @Query("lastid") String id);

    //段子ID
    @GET("api/duanzi/appdnews")
    Observable<DetilsBean> getdetilsdata(@Query("ids") String ids);

    //段子评论列表
    @GET("api/duanzi/appdcpmlist")
    Observable<PingLunBean> getpinglun(@Query("ids") String ids, @Query("page") String page);

    //段子点赞踩收藏
//ids	段子id,type	喜欢 1反对2 收藏3 评论,device	设备号
    @GET("api/duanzi/appdzan")
    Observable<ZanCaiBean> getforation(@Query("ids") String id, @Query("type") String type, @Query("device") String device);

    //ids	段子ID
    // ,content	评论内容,
    // device	用户设备号 ,
    // mid	回复的用户UID从评论
    @GET("api/duanzi/appdconmment")
    Observable<HFBean> hfdata(@Query("ids") String ids, @Query("content") String content, @Query("device") String device, @Query("mid") String mid);


    //上传文件
    @Multipart
    @POST("api/duanzi/updimg")
    Observable<UpimgBean> upimg(@Part MultipartBody.Part file);

    //修改用户信息
    //api/users/upuser
    @POST("api/users/upuser")
    Observable<PersonSettingBean> upseting(@Query("imgs") String imgs, @Query("username") String username,
                                           @Query("sex") int sex, @Query("device") String device,
                                           @Query("email") String email, @Query("password") String password);

    //获取用户信息
    @GET("api/users/uinfo")
    Observable<UseInfoBean> geinfo(@Query("device") String device);

    //api/duanzi/addduanzi
    //发表段子
    @POST("api/duanzi/addduanzi")
    Observable<PutBean> putdata(@Query("content") String content, @Query("device") String device,
                                @Query("img") String img, @Query("type") String type);

    //我的收藏
    @GET("api/users/myshou")
    Observable<MeCollectBean> getmecoll(@Query("device") String device, @Query("page") String page);

    //我的帖子
    @GET("api/users/myduanzi")
    Observable<ShengtieBean> getshengtie(@Query("device") String device, @Query("page") String page);

    //    评测首页 头部筛选
    //@city c城市
    @GET("api/pingce/indexfilter")
    Observable<DianPingChoiceBean> getchoice(@Query("city") String city);

    //    xlocation	X坐标	是	[string]	106.514763
//    ylocation	Y坐标	是	[string]	29.599155
//    type	分类如按摩 足浴等 ID		[string]
//    key	商圈名或商家名字搜索		[string]
//    paid	排序ID 默认空		[string]
//    page	页数默认1	是	[string]
//    xid	价格筛选ID		[string]
//    city	城市名	是	[string]
    //评测获取商家列表
    @GET("api/pingce/indexlist")
    Observable<DianPingBean> getpingce(@Query("xlocation") String xlocation, @Query("ylocation") String ylocation
            , @Query("type") String type, @Query("key") String key, @Query("paid") String paid, @Query("page") String page
            , @Query("xid") String xid, @Query("city") String city);

    //商家详细接口id	商家id
    @GET("api/pingce/shopinfo")
    Observable<ShopDetilsBean> getshops(@Query("id") String id);

    //    获取商家评论列表品
//id	商家id	是	[string]
//    page	页数
//    type	=1 好评 =2差评 =3有
    @GET("api/pingce/shopcomment")
    Observable<DianPingDetilsBean> getdianping(@Query("id") String id, @Query("page") String page, @Query("type") String type);

    //上传评测图片
    @Multipart
    @POST("api/pingce/updimg")
    Observable<UpimgBean> upimg_pingce(@Part MultipartBody.Part file);

    //    ids	商家id	是	[string]
//    content	内容	是	[string]
//    device	设备号	是	[string]
//    imgs	多张图片以英文逗号分隔	是	[string]
//    star	评分 如 0 1 2 3 4 5
    @POST("api/pingce/addcomment")
    Observable<UpPingCeBean> uppingce(@Query("ids") String id, @Query("content") String content, @Query("device") String device
            , @Query("imgs") String imgs, @Query("star") String star);

    //    我的商家信息
//    device	设备号	是	[string]	866239032569961
//    page	页数
    @GET("api/pingce/myshoplist")
    Observable<MeShopBean> meshop(@Query("device") String device, @Query("page") String page);

    //    添加我的商家信息
//    title	商家名字 (以下参数必填)	是	[string]
//    shangquan	商圈地点	是	[string]
//    renjun	人均消费	是	[string]
//    phone	联系电话	是	[string]
//    business	营业时间	是	[string]
//    address	详细地址	是	[string]
//    imgs	图片地址 上传使用发表评论图片接口	是	[string]
//    type	分类id	是	[string]
//    device	设备
    @POST("api/pingce/addshops")
    Observable<PuShopBean> putshop(@Query("title") String title, @Query("shangquan") String shangquan, @Query("renjun") String renjun
            , @Query("phone") String phone, @Query("business") String business, @Query("address") String address, @Query("imgs") String imgs
            , @Query("type") String type, @Query("device") String device);

    //    添加商家信息 -获取商家分类
    @GET("api/pingce/shoptype")
    Observable<PutShopTypeBean> gettype();

    //    删除商家信息
//device	设备号	是	[string]
//    id	商家id
    @GET("api/pingce/shopdel")
    Observable<DelteShopBean> deltebean(@Query("device") String device, @Query("id") String id);
    //获取新闻列表
//    page	页数
    @GET("api/news/newslist")
    Observable<ZiXunBean> getzixun(@Query("page") String page);
 //谷歌广告api
    @GET("api/api/googleadv1.html")
 Observable<GooleAdBean> getad();
}
